// 认证相关工具函数

/**
 * 处理401未授权错误
 * @param {string} message - 自定义错误消息
 */
export const handle401Error = async (message = '登录信息已过期，请重新登录') => {
  // 清除本地token
  localStorage.removeItem('token')
  
  // 动态导入ElMessage避免循环依赖
  const { ElMessage } = await import('element-plus')
  ElMessage.error(message)
  
  // 跳转到登录页
  window.location.href = '/login'
  
  throw new Error(message)
}

/**
 * 检查响应是否为401错误
 * @param {Object} response - 响应对象
 * @returns {boolean} 是否为401错误
 */
export const is401Error = (response) => {
  // 检查HTTP状态码
  if (response.status === 401) {
    return true
  }
  
  // 检查响应数据中的code字段
  if (response.data && response.data.code === 401) {
    return true
  }
  
  return false
}

/**
 * 检查响应数据的code字段是否为401
 * @param {Object} data - 响应数据
 * @returns {boolean} 是否为401错误
 */
export const isDataCode401 = (data) => {
  return data && data.code === 401
}

export default {
  handle401Error,
  is401Error,
  isDataCode401
}
